class Solution
{
public:
    int mySqrt(int x)
    {
        long long l(0), r(x);
        while (l < r)
        {
            // 用中间的值去尝试
            long long mid((l + r + 1) >> 1);
            //<= 有可能是答案
            if (mid * mid <= x)
                l = mid;
            // 大于 不可能
            else
                r = mid - 1;
        }
        return l;
    }
};